environment Variable

- Global Variable
- Local Variable
Global Variable
전역 변수로 지정된 변수는 쉘 세션 및 파생된 자식 서브쉘에서도 볼 수 있다.
(자식 변수는 이를 만든 쉘에서만 사용 가능)
printenv # or env
printenv HOME # $HOME
echo $HOME
Local Variable
지역 변수만을 출력하는 별도의 명령은 존재하지 않는다.
set # ( )
env
printenv # ( )
사용자 정의 변수 설정
my_variable=HELLO
echo $my_variable
$를 이용해서 변수를 참조하며, 이를 명령어에 전달 할 수 있다.
(빈 칸을 포함하는 문자열을 저장할 경우, 시작과 끝을 나타내는 쌍따옴표 사용)

사용자 정의 변수를 지정할 때 소문자를 사용함을 관례로 한다.
시스템 환경 변수는 대문자를 사용하기 때문에 사용자 정의 변수를 소문자로 할 경우, 재정의하는 예상치 못한 재앙을 피할 수 있다.

변수를 정의할 때, 변수 이름, 등호, 값 사이에 빈 칸을 허용하지 않는다.(빈칸을 넣을 경우 별개의 명령으로 값을 해석한다.)

정의된 변수는 지역 변수이다.
지역 변수를 생성한 뒤 전역 환경으로 내보냄으로서 전역 환경 변수를 생성한다.
my_variable="I am Global Now"
export my_vairable
자식 쉘 안에서 전역 환경 변수를 변경하여도 부모 쉘의 변수 값에는 영향을 주지 않는다.
(전역 환경 변수를 재 export 하여도 부모 쉘의 변수 값을 변경할 수 없음)
환경 변수 제거
my_variable="Before remove"
unset my_variable # $
자식 쉘에서 전역 환경 변수에 대해 unset을 수행하여도,
부모 쉘에서는 전역 환경 변수의 값을 변경 시키지 않는다.
(부모 쉘에서 직접 unset 수행 되어야 함)